/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.sacodemel.financeiro.servico.impl;

import com.sacodemel.financeiro.modelo.Pessoa;
import com.sacodemel.financeiro.modelo.RegistroCaixa;
import com.sacodemel.financeiro.persistencia.dao.impl.InvestidoresDAO;
import com.sacodemel.financeiro.persistencia.dao.IInvestidoresDAO;
import com.sacodemel.financeiro.servico.IInvestidoresService;
import com.sacodemel.financeiro.servico.IRegistroCaixaService;
import com.sacodemel.financeiro.util.Constantes;
import java.io.Serializable;
import java.util.List;
import javax.inject.Named;

/**
 *
 * @author X4Q1
 */
@Named
public class InvestidoresService  implements IInvestidoresService, Serializable {

    IInvestidoresDAO investidoresDAO = new InvestidoresDAO();
    IRegistroCaixaService registroCaixaService;
    
    public List<Pessoa> obterListaInvestidores() throws Exception {
        return investidoresDAO.listarAtivos();
    }
    
    public List<Pessoa> obterListaTodosInvestidores() throws Exception {
        return investidoresDAO.listarTodos();
    }

    public void salvar(Pessoa pessoa) throws Exception {
    
        if (pessoa.getId()==null){
               pessoa.setStatus(Constantes.STATUS_ATIVO);
        }
        
        investidoresDAO.salvar(pessoa);
    }

    public void excluir(Pessoa pessoa) throws Exception {
        pessoa.setStatus(Constantes.STATUS_INATIVO);
        this.salvar(pessoa);
        this.inativaRegistrosDeCaixa(pessoa.getId());
    }

    private void inativaRegistrosDeCaixa(Integer id) throws Exception {

        registroCaixaService = new RegistroCaixaService();
        
        for (RegistroCaixa reg : registroCaixaService.obterRegistrosPorInvestidor(id)) {
            registroCaixaService.excluir(reg);
        }
        
    }
    
}
